#Domino REST API
標記為 #Domino REST API · 12 篇文章
- 把 Domino 附件用 REST 拋出去:DRAPI 與 DAS 都有附件端點,差在現代 vs 舊版
前幾篇都是使用者從 UI 上傳附件;但有時你要用 REST 把附件程式化地拋進拋出。Domino 有兩套 REST API:DRAPI(現代、KEEP)與 DAS(舊版、Extension Library)。常見的誤解是「DAS 只能讀」——其實不然,DAS 一樣有專屬的附件端點可以新增/讀取/更新/刪除。真正的差別是現代 vs 舊版,加上一個 DAS 特有的陷阱:別把內嵌附件資料的整份文件拿去 create/update(會回 400),要走專屬附件端點。這篇把兩者的端點與差異對照清楚。
2026.09.10 - 把 CA 放進 certstore 就到處都信任了?DRAPI 對外其實走 JVM truststore、不是 certstore
把憑證放進 certstore.nsf 之後,開發者還有兩個實際問題:我的服務(尤其 Domino REST API)怎麼直接用它發 HTTPS?還有——我自己的程式對外呼叫 HTTPS 時,是不是也靠 certstore 驗對方憑證?答案會戳破一個常見誤會:同一台 server 上,憑證的信任其實分散在三個不同的地方。這篇(certstore 系列第三篇)以在 Domino 12.0.2 上的親手實測,講 DRAPI 的 keepconfig.d TLSCertStore 設定、certstore trusted roots 的真正用途,並把 certstore/Domino Directory/JVM cacerts 三個信任庫一次分清楚。
2026.09.04 - Domino REST API 上線前:安全模型、rich text 單向、CORS 與 admin port
系列收尾。你已經會認證、開 scope、CRUD、查詢了;把它交給真實使用者之前,Domino 開發者最該問兩件事:它會不會繞過我的 Readers 欄位安全?以及上正式環境會踩到什麼。答案:DRAPI 是分層安全(JWT + scope + 底層 Domino 的 ACL/Readers 照算),不會漏;但有幾個很實在的限制——rich text 只能單向轉出、沒配置的欄位碰不到、同名 form/view 選哪個沒保證——加上 CORS、port 這些上線前要收的口。DRAPI 系列第六篇(完結)。
2026.08.24 - DQL 明明沒寫錯,卻一筆都查不到?因為那個 form 少了 dql mode
上一篇是用 unid 拿單一份文件。真正常見的是「符合條件的一批」——所有未完成的 todo、某區的所有客戶。DRAPI 給兩條路:GET /lists/{view} 讀一個 view/folder,或 POST /query 跑 DQL。DQL 還支援參數化查詢(?VAR + variables,防注入)。但有個接續上一篇的坑:一個 form 若沒有 dql mode,DQL 就完全看不到它。這篇把兩條查詢路徑、分頁、mode 陷阱與 DQL 存取控制講清楚。DRAPI 系列第五篇。
2026.08.23 - 在 Domino REST API 建文件,為什麼一定要帶 Form 欄位和 dataSource?
門開好了(schema + scope),這一篇做真正的活:用 REST 對 NSF 裡的文件增刪查改。建立是 POST /document、body 帶一個必填的 Form 欄位,回來的 @meta 裡有 unid;讀取是 GET /document/{unid}/{mode}。每個 CRUD 呼叫都帶 dataSource——而那個值就是你上一篇建的 scope 名字。這篇也講兩個 Domino 開發者會愣一下的點:Form 欄位為什麼必填、mode 是什麼。DRAPI 系列第四篇。
2026.08.22 - Domino REST API 的 scope 與 schema:一個 NSF 怎麼變成 REST 端點(而且預設什麼都不開)
把一個 NSF 開上 REST,不是打開開關就全部曝露。DRAPI 是 secure-by-default:你要先寫一份 schema(白名單,決定哪些 form、view、folder、agent、欄位對外),再建一個 scope(把 schema 活化成 REST mapping 的那層)。scope 的名字就是上一篇 JWT 裡 scopes claim 認的那個名字,而底下 Domino 的 ACL、Readers 欄位一樣還在算。這篇把 schema 與 scope 拆清楚。DRAPI 系列第三篇。
2026.08.21 - 呼叫 Domino REST API 一直 401?先搞懂它的 JWT 認證與 scope
DRAPI 幾乎每個呼叫都要證明你是誰。它不用傳統的 session/LTPA,而是 JWT bearer token:先 POST 到 /api/v1/auth 用 Domino 帳密換一個 token,之後每個請求都在 Authorization header 帶著它。這篇講怎麼登入拿 token、token 裡的 scopes/aud claim 在管什麼、token 從哪來(Domino 自簽 JWT、外部 OIDC、idpcat.nsf 三條路)、以及重啟金鑰會變之類的坑。DRAPI 系列第二篇。
2026.08.20 - Domino REST API 上手:把 NSF 資料變成任何語言都能呼叫的 REST 端點
想讓一個現代前端、一支 Python 服務、或一條 Power Automate 流程讀寫 Domino 資料,傳統答案(XPages、DIIOP、自己寫 LotusScript web agent 吐 JSON)都得讓對方遷就 Domino。Domino REST API(DRAPI,KEEP 專案)把它反過來:在你的 NSF 之上架一層標準的 REST/JSON API,任何會講 HTTP 的語言都能呼叫。這是 DRAPI 系列的第一篇——它是什麼、跟傳統存取差在哪、三個要先懂的積木(scope/schema、JWT、OpenAPI/Swagger),以及怎麼開始。
2026.08.19 - 實作筆記:DRAPI 透過 Keycloak OIDC 登入 — Domino 12.0.2 就能用、不必等 14
想把 DRAPI(Domino REST API)接到現代 IdP — 譬如 Keycloak、Azure AD、Okta — 通常以為要等 Domino 14 才有 OIDC、其實 12.0.2 用 DRAPI 的 oidc 模式就能跑通。本文是本機完整重現整套設定的實作筆記、聚焦 DRAPI 三個 OIDC 模式怎麼選、三層獨立認證架構(身份驗證 / 身份對應 / 授權)為什麼要分層除錯、跟 4 個會卡很久的踩雷 — 最大那個是 providerUrl 用 localhost 因為 Java IPv4 解析造成跨機器整個失敗。完整逐步流程在 GitHub repo + Pages 上、文章本身不重複設定步驟、聚焦關鍵判斷跟陷阱。
2026.06.01 - Domino REST API 目前最新版 v1.1.7:新端點與修正整理
HCL Domino REST API 目前最新版本是 v1.1.7(2026 年 4 月 7 日釋出),新增日曆設定、PIM 未讀狀態、Email 文件更新等端點,並修正附件下載、Microsoft Entra ID 認證、會議邀請等問題。
2026.05.04 - DQL 入門:用 SQL 風格的語法操作 Notes 文件
Domino Query Language(DQL)讓你用近 SQL 的語法直接查詢 Notes 文件,免再為每種查詢條件設計 view。本文是「DQL 三部曲」系列的 Part 1:介紹 DQL 的設計初衷、第一個 query 怎麼寫、從 LotusScript / Java / REST API 怎麼呼叫,以及常用語法速查。寫 query 結果不如預期的細節在 Part 2,上 production 的 catalog 維運與權限在 Part 3。
2026.04.28 - HCL Domino REST API 快速入門指南
本指南將引導您安裝、配置並開始使用 HCL Domino REST API,讓您能夠透過現代化的 RESTful 介面存取 Domino 資料庫。
2026.04.28